package com.idgenerator.configuration;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Data
@Component
@ConfigurationProperties(prefix = "spring.id")
public class IdGeneratorProperties {


    private String defaultGen="local";
    /**
     * 是否启用ID生成器
     */
    private Boolean enable = false;
    /**
     * 本地生成器配置信息
     */
    private List<LocalIdGen> local=new ArrayList<>();
    /**
     * zookeeper生成器配置信息
     */
    private List<ZookeeperIdGen> zookeeper=new ArrayList<>();

    /**
     * 本地ID生成器
     */
    @Data
    public static class LocalIdGen {

        /**
         * 是否生成ID,默认是false
         */
        private Boolean enable = false;
        /**
         * 数据中心ID
         */
        private int dataCenterId;
        /**
         * 工作中心ID
         */
        private int workerId;
        /**
         * id生成器标志
         */
        private String gen;
    }


    /**
     * ZookeeperID生成器
     */
    @Data
    public static class ZookeeperIdGen {
        /**
         * 是否生成ID,默认是false
         */
        private Boolean enable = false;
        /**
         * zookeeper连接地址
         */
        private String connectionString;
        /**
         * 服务端口号
         */
        private String port;
        /**
         * 服务名称
         */
        private String name;
        /**
         * id生成器标志
         */
        private String gen;
    }


}
